iT邦幫忙

2025 iThome 鐵人賽

DAY 2
0
AI & Data

AIOps × Flows系列 第 2

【Day 02】環境佈署 I

  • 分享至 

  • xImage
  •  

安裝環境(假設 python 已先行安裝):

  1. 確認已安裝 Python 且 啟動虛擬環境
python3 --version

# 建資料夾並進入
mkdir -p ~/aiops_flow_project && cd ~/aiops_flow_project

# 建立 venv 並啟用
python3 -m venv .venv
source .venv/bin/activate

# 升級 pip 並安裝基礎套件
python -m pip install --upgrade pip
pip install fastapi uvicorn[standard] prometheus-client pydantic wandb

# 驗證
python -c "import sys, platform; print('ok', sys.version, platform.system(), 'venv='+str(sys.prefix))"

# cd 到專案根目錄,設立 VS Code 的工作區設定
mkdir -p .vscode
cat > .vscode/settings.json << 'EOF'
{
  "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
  "python.terminal.activateEnvironment": true
}
EOF

# 關閉並重新開啟新的 terminal ,再加以驗證
python -c "import sys; print(sys.executable)"

  1. 確認是否已安裝 Node.js 18+
node -v

# 因未安裝故執行以下指令
    # 1. 安裝 nvm 到家目錄(自動偵測 curl / wget)
    export NVM_VERSION="v0.39.7"
    if command -v curl >/dev/null 2>&1; then
      curl -fsSL https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh | bash
    else
      wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/$NVM_VERSION/install.sh | bash
    fi

    # 2. 載入 nvm(讓目前這個 shell 立刻可用)
    export NVM_DIR="$HOME/.nvm"
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
    [ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

    # 3. 安裝 LTS 版 Node.js(≥ 18),並設成預設
    nvm install --lts
    nvm alias default 'lts/*'
    nvm use default

    # 4. 驗證
    node -v
  1. 確認 Kubernetes
kubectl version --client --short

# ========== non-sudo kubectl install to home dir ==========
set -e

# 安裝目錄(可改成 ~/bin 或 ~/.local/bin,這邊用 ~/.local/bin)
INSTALL_DIR="$HOME/.local/bin"
mkdir -p "$INSTALL_DIR"

# 取得官方最新穩定版本號
STABLE=$(curl -fsSL https://dl.k8s.io/release/stable.txt)
echo "kubectl stable version: $STABLE"

# 下載二進位到暫存,再移到 INSTALL_DIR
TMPF=$(mktemp)
curl -fsSL "https://dl.k8s.io/release/${STABLE}/bin/linux/amd64/kubectl" -o "$TMPF"
chmod +x "$TMPF"
mv "$TMPF" "${INSTALL_DIR}/kubectl"

# 若是 ARM64(Apple M1/M2 remote 或 ARM 主機),改用 arm64 路徑:
# curl -fsSL "https://dl.k8s.io/release/${STABLE}/bin/linux/arm64/kubectl" -o "$TMPF"

# 確保 ~/.local/bin 在 PATH:若沒有則加入到 ~/.bashrc 與 ~/.profile
if ! echo "$PATH" | grep -q "$INSTALL_DIR"; then
 echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$HOME/.bashrc"
 echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$HOME/.profile"
 export PATH="$INSTALL_DIR:$PATH"
 echo "Added $INSTALL_DIR to PATH in ~/.bashrc and ~/.profile"
fi

# 載入 bashrc(如果你是 bash)
[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

# 驗證安裝
which kubectl
kubectl version --client 

echo "DONE - if you still see 'not found' in a new terminal, please reopen the terminal."
  1. 確認 Docker
docker --version
  1. 安裝 kind(Kubernetes IN Docker)到使用者目錄並立即驗證:
  • 在本機跑一個輕量的 K8s 叢集來做開發與測試
# 1. 安裝目錄
INSTALL_DIR="$HOME/.local/bin"
mkdir -p "$INSTALL_DIR"

# 2. 下載 kind 二進位檔(Linux x86_64 版本)
KIND_VER="v0.20.0"
TMPF=$(mktemp)
curl -fsSL "https://kind.sigs.k8s.io/dl/${KIND_VER}/kind-linux-amd64" -o "$TMPF"
chmod +x "$TMPF"
mv "$TMPF" "$INSTALL_DIR/kind"

# 3. 確保 ~/.local/bin 在 PATH
if ! echo "$PATH" | grep -q "$INSTALL_DIR"; then
  echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$HOME/.bashrc"
  echo "export PATH=\"$INSTALL_DIR:\$PATH\"" >> "$HOME/.profile"
  export PATH="$INSTALL_DIR:$PATH"
fi

# 4. 立刻載入(假定使用 bash)
[ -f "$HOME/.bashrc" ] && source "$HOME/.bashrc"

# 5. 驗證版本
kind --version
  1. 建立名為 aiops 的本地 Kubernetes 叢集,並驗證 kubectl 可以連上
# 1. 建立名為 aiops 的 kind cluster(會自動下載必要映像並建立 node)
kind create cluster --name aiops

# 2. 建立完成後,請貼上這行的輸出給我
kubectl get nodes -o wide

※ 說明事項:

  • kind create cluster 會花 30s ~ 2分鐘,視網路與本機情況而定
  • 若第一次使用可能會先下載 K8s node 映像(稍久)
  • 關鍵驗證:kubectl get nodes -o wide 的輸出包含至少一個 Ready 的 node(名稱會是 aiops-control-plane 或類似),並顯示其 IP 與狀態

上一篇
【Day 01】挑戰介紹
下一篇
【Day 03】環境佈署 II
系列文
AIOps × Flows3
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言